const Model = require('./model')
const BaseMongo = require('../base')
const { stateKeys } = require('../base/model')

/**
 * 意见反馈
 */
class FeedbackMongo extends BaseMongo{

  constructor () {
    super()
  }

	/**
	 * 获取所以有反馈数据
	 * @param data 分页数据
	 * @param {boolean} all 是否获取所有反馈数据 true: 获取所有数据个数 false:只获取列表显示的个数
	 * @returns {Promise<void>}
	 */
	static find(data, all = false) {
		const {page, count} = data
		const params = { $or: [
				{stateKey: stateKeys.NORMAL},
				{stateKey: {$exists: false}}
			]}
		let field = {}
		if (all == false) {
			params.isShow = true
			field =  this.existparameter(['date', 'name', 'content'])
		}
		const skip = (page - 1) * count
		const model = Model.find(params, field).skip(skip).limit(count)
		model.sort({'date': -1})
    return model.exec()
	}

	/**
	 * 更新反馈数据(只更新显示位置)
	 * @param data 更新的数据
	 * @returns {Promise<*|IDBValidKey|void>}
	 */
	static update(data) {
		return Model.updateOne(
			{_id: this.objId(data.id)},
			{isShow: data.isShow},
			{multi: true})
	}
}


/**
 * 设置当前模型
 */
FeedbackMongo.model = Model
/**
 * 添加字段数组
 * @type {Array}
 */
FeedbackMongo.fieldArr = ['name', 'phone', 'qq', 'wx', 'isShow', 'date', 'content']

module.exports = FeedbackMongo
